Skip to main content

Nginx Proxy Manager (NPM)

Diese Anleitung hilft dir bei der Installation des Nginx Proxy Managers. NPM ist ein mächtiges Tool, um SSL-Zertifikate zu verwalten und Web-Dienste einfach per GUI weiterzuleiten.


1. Voraussetzungen & Docker Installation

Bevor wir starten, muss Docker installiert sein. Falls du es noch nicht hast, nutze diese Befehle:

System-Update & Docker Download

sudo apt update && sudo apt upgrade -y
# Installiere notwendige Pakete
sudo apt install ca-certificates curl gnupg lsb-release -y

# Offiziellen Docker-Key hinzufügen
sudo mkdir -p /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Repository einrichten
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installation
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

2. Arbeiten mit dem Texteditor (Nano)

Um Konfigurationsdateien zu erstellen, nutzen wir den Editor nano.

  • Datei öffnen/erstellen: nano docker-compose.yml
  • Suchen innerhalb einer Datei: Drücke Strg + W, gib den Suchbegriff ein und drücke Enter.
  • Speichern: Drücke Strg + O, bestätige mit Enter.
  • Beenden: Drücke Strg + X.

3. Nginx Proxy Manager einrichten

Wir erstellen einen eigenen Ordner, damit alle Daten an einem Ort bleiben.

mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
nano docker-compose.yml

Variante A: Standard (mit SQLite Datenbank)

Ideal für kleine Setups oder Einsteiger.

Kopiere diesen Inhalt in die Datei:

services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # Öffentlicher HTTP Port
- '443:443' # Öffentlicher HTTPS Port
- '81:81' # Admin Web Oberfläche
environment:
TZ: "Europe/Berlin" # Zeitzone anpassen!
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Variante B: Mit MariaDB (Empfohlen für Produktion)

Bietet mehr Performance und Stabilität.

services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
environment:
TZ: "Europe/Berlin"
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm" # ÄNDERE DIESES PASSWORT
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm' # ÄNDERE DIESES PASSWORT
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
MARIADB_AUTO_UPGRADE: '1'
volumes:
- ./mysql:/var/lib/mysql

4. Die App starten

Nachdem du die Datei gespeichert und geschlossen hast (Strg+O, Enter, Strg+X), starte den Container:

sudo docker compose up -d

Das -d sorgt dafür, dass die Container im "Detach-Modus" (Hintergrund) laufen und nicht beendet werden, wenn du das Terminal schließt.


5. Zugriff auf das Web-Interface

Öffne deinen Browser und rufe die IP deines Servers auf Port 81 auf: http://deine-server-ip:81

Standard-Logindaten:

Hinweis: Du wirst beim ersten Login sofort aufgefordert, diese Daten zu ändern.


Sonderfall: Raspberry Pi / ARM

Falls du einen Raspberry Pi benutzt:

  • NPM unterstützt ARM64 automatisch.
  • Bei Problemen mit MariaDB auf ARM, ersetze das Image jc21/mariadb-aria:latest durch yobasystems/alpine-mariadb:latest.



```python?code_reference&code_event_index=2
content = """# Setup Guide: Nginx Proxy Manager (NPM)

Diese Anleitung hilft dir bei der Installation des Nginx Proxy Managers. NPM ist ein mächtiges Tool, um SSL-Zertifikate zu verwalten und Web-Dienste einfach per GUI weiterzuleiten.

---

## 1. Voraussetzungen & Docker Installation

Bevor wir starten, muss **Docker** installiert sein. Falls du es noch nicht hast, nutze diese Befehle:

### System-Update & Docker Download
```bash
sudo apt update && sudo apt upgrade -y
# Installiere notwendige Pakete
sudo apt install ca-certificates curl gnupg lsb-release -y

# Offiziellen Docker-Key hinzufügen
sudo mkdir -p /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Repository einrichten
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installation
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

2. Arbeiten mit dem Texteditor (Nano)

Um Konfigurationsdateien zu erstellen, nutzen wir den Editor nano.

  • Datei öffnen/erstellen: nano docker-compose.yml
  • Suchen innerhalb einer Datei: Drücke Strg + W, gib den Suchbegriff ein und drücke Enter.
  • Speichern: Drücke Strg + O, bestätige mit Enter.
  • Beenden: Drücke Strg + X.

3. Nginx Proxy Manager einrichten

Wir erstellen einen eigenen Ordner, damit alle Daten an einem Ort bleiben.

mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
nano docker-compose.yml

Variante A: Standard (mit SQLite Datenbank)

Ideal für kleine Setups oder Einsteiger.

Kopiere diesen Inhalt in die Datei:

services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # Öffentlicher HTTP Port
- '443:443' # Öffentlicher HTTPS Port
- '81:81' # Admin Web Oberfläche
environment:
TZ: "Europe/Berlin" # Zeitzone anpassen!
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Variante B: Mit MariaDB (Empfohlen für Produktion)

Bietet mehr Performance und Stabilität.

services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
environment:
TZ: "Europe/Berlin"
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm" # ÄNDERE DIESES PASSWORT
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm' # ÄNDERE DIESES PASSWORT
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
MARIADB_AUTO_UPGRADE: '1'
volumes:
- ./mysql:/var/lib/mysql

4. Die App starten

Nachdem du die Datei gespeichert und geschlossen hast (Strg+O, Enter, Strg+X), starte den Container:

sudo docker compose up -d

Das -d sorgt dafür, dass die Container im "Detach-Modus" (Hintergrund) laufen und nicht beendet werden, wenn du das Terminal schließt.


5. Zugriff auf das Web-Interface

Öffne deinen Browser und rufe die IP deines Servers auf Port 81 auf: http://deine-server-ip:81

Standard-Logindaten:

Hinweis: Du wirst beim ersten Login sofort aufgefordert, diese Daten zu ändern.


Sonderfall: Raspberry Pi / ARM

Falls du einen Raspberry Pi benutzt:

  • NPM unterstützt ARM64 automatisch.
  • Bei Problemen mit MariaDB auf ARM, ersetze das Image jc21/mariadb-aria:latest durch yobasystems/alpine-mariadb:latest.